<?php

/**
 * Description of class DbSession
 * Database klassen om sessies op te slaan, aan te passen, verwijderen of op te halen ter controle. 
 * 
 * @version 0.1
 * @author Sander van Belleghem
 * 
 */

require_once FILE_DB_DATABASE;
require_once FILE_DB_CONTROLE;

class DbSession extends Database {

    private $sessie_id;
    private $sessie_array;
    private $sessie_datetime;
    private $controle;

    public function __construct($sessie_id = '') {
        parent::__construct();

        $this->controle = new DbControle();
        
        if (isset($sessie_id)) {
            $this->sessie_id = $sessie_id;
        }
    }

    public function DbSession() {
        
    }

    // Controleer sessie gegevens met gegevens in de database.
    public function getSessie($sessie_id) {
        
        $query = ("SELECT * FROM sessie WHERE 
                        sessie_id = '" . mysql_real_escape_string($sessie_id) . "'");

        if ($this->dbquery($query)) {
            if ($this->dbNumRows() == 1) {
            
                $result = $this->dbFetchArray();

                $this->sessie_id = $result['sessie_id'];
                $this->sessie_array = $result['sessie'];
                $this->sessie_datetime = $this->controle->dutch_datetime($result['sessie_datetime']);
            
            } else {
                return false;
            }
        } else {
            return false;
        }
        
    }
    
    public function getSessieId(){
        return $this->sessie_id;
    }

    public function getSessieArray() {
        return unserialize($this->sessie_array);
    }

    public function getSessieDatetime() {
        return $this->sessie_datetime;
    }

    public function setSessieId($sessie_id){
        $this->sessie_id = $sessie_id;
    }

    public function setSessieArray($sessie_array) {      
        $this->sessie_array = serialize(str_replace(' ', '&nbsp;', $sessie_array));
    }

    public function setSessieDatetime($sessie_datetime) {
        $this->sessie_datetime = $sessie_datetime;
    }

    public function updateSessie() {
        
        $query = ("UPDATE sessie 
                        SET sessie = '" . mysql_real_escape_string($this->sessie_array) . "',
                            sessie_datetime = '" . mysql_real_escape_string($this->sessie_datetime) . "'
                        WHERE sessie_id ='" . mysql_real_escape_string($this->sessie_id) . "'");
        
        if (!$this->dbquery($query)) {
            return false;
        }
    }

    public function saveSessie() {
        $query = ("INSERT INTO sessie (sessie, sessie_datetime) 
                        VALUES ('" . mysql_real_escape_string($this->sessie_array) . "',
                                '" . mysql_real_escape_string($this->sessie_datetime) . "')");
        
        if ($this->dbquery($query)) {
            $this->sessie_id = mysql_insert_id();
        }
    }

    // Controleer sessie gegevens met gegevens in de database.
    public function sessionCheck($gebruiker_id, $voornaam, $achternaam) {
        
        if (empty($gebruiker_id) OR empty($voornaam) OR empty($achternaam)){
            
            echo __FUNCTION__.' '.__FILE__.__LINE__.'Er is iets mis gegaan tijdens inloggen.<br />';
            
            return false;
        }
                
        $query = "SELECT `gebruiker_id` FROM `gebruiker` WHERE `voor_naam`= '" . $voornaam . "' AND `achter_naam`= '" . $achternaam . "'";
        
        $query_result = mysql_query($query);
                
        if (mysql_num_rows($query_result) == 1) {  
            while ($row = mysql_fetch_array($query_result)) {
                if ($gebruiker_id == $row['gebruiker_id']) { 
                    return true;
                } 
                return false;
            }
        }
        else {
            //echo __FILE__.__LINE__.mysql_num_rows($query_result);
        }
    }

}

?>
